home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 April: Mac OS SDK / Dev.CD Apr 98 SDK1.toast / Development Kits (Disc 1) / Installer SDK Cornucopia 1.1.2 / DeveloperInterfaces / PIncludes / InstallerScript.p < prev    next >
Encoding:
Text File  |  1998-02-12  |  12.2 KB  |  464 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        InstallerScript.p
  3.  
  4.      Contains:    xxx put contents here xxx
  5.  
  6.      Version:    Technology:    Installer 4.5
  7.                  Package:    4.5
  8.  
  9.      Copyright:    © 1984-1998 by Apple Computer, Inc.
  10.                  All rights reserved.
  11.  
  12.      Bugs?:        If you find a problem with this file, use the Apple Bug Reporter
  13.                  stack.  Include the file and version information (from above)
  14.                  in the problem description and send to:
  15.                      Internet:    apple.bugs@applelink.apple.com
  16.                      AppleLink:    APPLE.BUGS
  17.  
  18. }
  19.  
  20. {$IFC UNDEFINED UsingIncludes}
  21. {$SETC UsingIncludes := 0}
  22. {$ENDC}
  23.  
  24. {$IFC NOT UsingIncludes}
  25.  UNIT InstallerScript;
  26.  INTERFACE
  27. {$ENDC}
  28.  
  29. {$IFC UNDEFINED __INSTALLERSCRIPT__}
  30. {$SETC __INSTALLERSCRIPT__ := 1}
  31.  
  32. {$I+}
  33. {$SETC InstallerScriptIncludes := UsingIncludes}
  34. {$SETC UsingIncludes := 1}
  35.  
  36.  
  37. {$IFC UNDEFINED __FILES__}
  38. {$I Files.p}
  39. {$ENDC}
  40. {    Types.p                                                        }
  41. {        ConditionalMacros.p                                        }
  42. {    MixedMode.p                                                    }
  43. {    OSUtils.p                                                    }
  44. {        Memory.p                                                }
  45. {        Patches.p                                                }
  46. {            Kernel.p                                            }
  47. {                Errors.p                                        }
  48. {                MachineExceptions.p                                }
  49. {                Timing.p                                        }
  50. {            OrderedItems.p                                        }
  51. {    Finder.p                                                    }
  52.  
  53. {$IFC UNDEFINED __MEMORY__}
  54. {$I Memory.p}
  55. {$ENDC}
  56.  
  57. {$IFC UNDEFINED __MIXEDMODE__}
  58. {$I MixedMode.p}
  59. {$ENDC}
  60.  
  61. {$IFC UNDEFINED __TYPES__}
  62. {$I Types.p}
  63. {$ENDC}
  64.  
  65. {$PUSH}
  66. {$ALIGN MAC68K}
  67. {$LibExport+}
  68.  
  69. CONST
  70.     kMaxNumOfFunctionParams        = 12;
  71.  
  72.  
  73. TYPE
  74.     CallBackPBRec = RECORD
  75.         fSelector:                LONGINT;
  76.         fResult:                LONGINT;
  77.         fParam:                    ARRAY [0..kMaxNumOfFunctionParams-1] OF LONGINT;
  78.     END;
  79.  
  80.     CallBackPBPtr = ^CallBackPBRec;
  81.  
  82.     InstallerCallBackProcPtr = ProcPtr;  { FUNCTION InstallerCallBack(theCallBackPB: CallBackPBPtr): LONGINT; }
  83.     InstallerCallBackUPP = UniversalProcPtr;
  84.  
  85. CONST
  86.     uppInstallerCallBackProcInfo = $000000F1; { FUNCTION (4 byte param): 4 byte result; }
  87.  
  88. FUNCTION NewInstallerCallBackProc(userRoutine: InstallerCallBackProcPtr): InstallerCallBackUPP;
  89.     {$IFC NOT GENERATINGCFM }
  90.     INLINE $2E9F;
  91.     {$ENDC}
  92.  
  93. FUNCTION CallInstallerCallBackProc(theCallBackPB: CallBackPBPtr; userRoutine: InstallerCallBackUPP): LONGINT;
  94.     {$IFC NOT GENERATINGCFM}
  95.     INLINE $205F, $4E90;
  96.     {$ENDC}
  97. {///////////////////////////////////////////////////////////////////////////////////////////////////}
  98. {}
  99. {                                        Rule Function}
  100. {}
  101. {}
  102. {    Code Resource Calling Interface:}
  103. {}
  104. {        long YourRuleFunction( RuleFunctionPBPtr );}
  105. {}
  106. {///////////////////////////////////////////////////////////////////////////////////////////////////}
  107.  
  108. CONST
  109.     kTRUERuleFunctionResult        = 1;
  110.     kFALSERuleFunctionResult    = 0;
  111.  
  112.  
  113. TYPE
  114.     RuleFunctionPBRec = RECORD
  115.         fCallBackProcPtr:        InstallerCallBackUPP;
  116.         fTargetVRefNum:            INTEGER;
  117.         fTargetFolderDirID:        LONGINT;
  118.         fSystemVRefNum:            INTEGER;
  119.         fSystemBlessedDirID:    LONGINT;
  120.         fRefCon:                LONGINT;
  121.     END;
  122.  
  123.     RuleFunctionPBPtr = ^RuleFunctionPBRec;
  124.  
  125. {///////////////////////////////////////////////////////////////////////////////////////////////////}
  126. {}
  127. {                                        Action Atom Function}
  128. {}
  129. {}
  130. {    Code Resource Calling Interface:}
  131. {}
  132. {        long YourActionAtomFunction( ActionAtom2PBPtr );}
  133. {}
  134. {///////////////////////////////////////////////////////////////////////////////////////////////////}
  135.  
  136. CONST
  137.     before                        = 0;
  138.     after                        = 1;
  139.     cleanUpCancel                = 2;
  140.  
  141.     
  142. TYPE
  143.     InstallationStage = SInt8;
  144.  
  145.  
  146. CONST
  147.     kActionAtomResultFatalError    = -1;
  148.     kActionAtomResultContinue    = 0;
  149.     kActionAtomResultCancel        = 1;
  150.  
  151.     
  152. TYPE
  153.     ActionAtomResult = LONGINT;
  154.  
  155.     ActionAtom2PBRec = RECORD
  156.         fMessageID:                InstallationStage;
  157.         padByte:                SInt8;
  158.         fStaticDataHdl:            Handle;
  159.         fCallBackProcPtr:        InstallerCallBackUPP;
  160.         fTargetVRefNum:            INTEGER;
  161.         fTargetFolderDirID:        LONGINT;
  162.         fSystemVRefNum:            INTEGER;
  163.         fSystemBlessedDirID:    LONGINT;
  164.         fRefCon:                LONGINT;
  165.         fDoingInstall:            BOOLEAN;
  166.         fDidLiveUpdate:            BOOLEAN;
  167.         fInstallerTempDirID:    LONGINT;
  168.     END;
  169.  
  170.     ActionAtom2PBPtr = ^ActionAtom2PBRec;
  171.  
  172. {///////////////////////////////////////////////////////////////////////////////////////////////////}
  173. {}
  174. {                                        Version Compare Function}
  175. {}
  176. {}
  177. {    Code Resource Calling Interface:}
  178. {}
  179. {        long YourComputeVersionFunctionSetupFunction( ComputeVersionPBPtr );}
  180. {}
  181. {    Return the version in BCD format.  For example:  ver 2.0.1 final release is 0x02018000}
  182. {}
  183. {///////////////////////////////////////////////////////////////////////////////////////////////////}
  184.     ComputeVersionPB = RECORD
  185.         fCallBackProcPtr:        InstallerCallBackUPP;
  186.     END;
  187.  
  188.     ComputeVersionPBPtr = ^ComputeVersionPB;
  189.  
  190. {///////////////////////////////////////////////////////////////////////////////////////////////////}
  191. {}
  192. {                                        Target Search Function}
  193. {}
  194. {}
  195. {    Code Resource Calling Interface:}
  196. {}
  197. {        SearchResult YourTargetSearchFunction( SearchProcedurePBPtr );}
  198. {}
  199. {///////////////////////////////////////////////////////////////////////////////////////////////////}
  200.  
  201. CONST
  202.     kFatalSearchError            = -1;
  203.     kSearchSuccessful            = 0;
  204.     kCancelSearchAndInstallation = 1;
  205.  
  206.     
  207. TYPE
  208.     SearchResult = SInt8;
  209.  
  210.     FoundFileRec = RECORD
  211.         vRefNum:                INTEGER;
  212.         parID:                    LONGINT;
  213.         name:                    Str63;
  214.         fReferenceID:            INTEGER;
  215.     END;
  216.  
  217.     FoundFileArrayPtr = ^FoundFileRec;
  218.  
  219.     FoundFileArrayHdl = ^FoundFileArrayPtr;
  220.  
  221.     SearchProcedurePBRec = RECORD
  222.         fCallBackProcPtr:        InstallerCallBackUPP;
  223.         fTargetVRefNum:            INTEGER;
  224.         fTargetFolderDirID:        LONGINT;
  225.         fSystemVRefNum:            INTEGER;
  226.         fSystemBlessedDirID:    LONGINT;
  227.         fRefCon:                LONGINT;
  228.         fFileSpecType:            OSType;
  229.         fFileSpecCreator:        OSType;
  230.         fFileSpecCrDate:        LONGINT;
  231.         fFileSpecPath:            Str255;
  232.         fFoundFilesArray:        FoundFileArrayHdl;
  233.     END;
  234.  
  235.     SearchProcedurePBPtr = ^SearchProcedurePBRec;
  236.  
  237. {///////////////////////////////////////////////////////////////////////////////////////////////////}
  238. {}
  239. {                                        Setup Function}
  240. {}
  241. {}
  242. {    Code Resource Calling Interface:}
  243. {}
  244. {        long YourSetupFunction( EnvironmentSetupPBPtr );}
  245. {}
  246. {///////////////////////////////////////////////////////////////////////////////////////////////////}
  247.  
  248. CONST
  249.     kContinueInstallerSetup        = 0;
  250.     kQuitInstallerNow            = -1;
  251.  
  252.  
  253. TYPE
  254.     EnvironmentSetupPB = RECORD
  255.         fCallBackProcPtr:        InstallerCallBackUPP;
  256.         fTargetFSSpec:            FSSpec;
  257.         fSystemVRefNum:            INTEGER;
  258.     END;
  259.  
  260.     EnvironmentSetupPBPtr = ^EnvironmentSetupPB;
  261.  
  262. {///////////////////////////////////////////////////////////////////////////////////////////////////}
  263. {}
  264. {                                        Atom Extender Function}
  265. {}
  266. {}
  267. {    Code Resource Calling Interface:}
  268. {}
  269. {        long YourAtomExtenderFunction( ExtenderPBPtr );}
  270. {}
  271. {///////////////////////////////////////////////////////////////////////////////////////////////////}
  272.  
  273. CONST
  274.     kFileAtomDataFork            = 0;
  275.     kFileAtomRsrcFork            = 1;
  276.     kFileAtomRsrcForkFromDataFork = 2;
  277.     kRsrcAtom                    = 3;
  278.     kFontAtom                    = 4;
  279.     kActionAtom                    = 5;
  280.  
  281.     
  282. TYPE
  283.     DataType = SInt8;
  284.  
  285.  
  286. CONST
  287.     kFatalError                    = -1;
  288.     kContinueAsNormal            = 0;
  289.     kCancelInstallation            = 1;
  290.     kCopiedData                    = 2;
  291.  
  292.     
  293. TYPE
  294.     ExtenderResultCode = SInt16;
  295.  
  296.  
  297. CONST
  298.     kInitialize                    = 0;
  299.     kBeforePart                    = 1;
  300.     kAfterPart                    = 2;
  301.     kSuccess                    = 3;
  302.     kCancel                        = 4;
  303.  
  304.     
  305. TYPE
  306.     ExtenderMessageID = SInt8;
  307.  
  308.     EnvironsHeaderRec = RECORD
  309.         fMessageID:                ExtenderMessageID;
  310.         pad1:                    SInt8;
  311.         fStaticDataHdl:            Handle;
  312.         fCallBackProcPtr:        InstallerCallBackUPP;
  313.         fTargetVRefNum:            INTEGER;
  314.         fTargetFolderDirID:        LONGINT;
  315.         fSystemVRefNum:            INTEGER;
  316.         fSystemBlessedDirID:    LONGINT;
  317.         fRefCon:                LONGINT;
  318.         fDataType:                DataType;
  319.         pad2:                    SInt8;
  320.     END;
  321.  
  322.     CopyHeaderRec = RECORD
  323.         fSourceFile:            FSSpec;
  324.         fTargetFile:            FSSpec;
  325.         fTotalTargetSize:        LONGINT;
  326.         fTargetPosStart:        LONGINT;
  327.         fTargetPartSize:        LONGINT;
  328.         fSourcePartSize:        LONGINT;
  329.         fInstallerTempDirID:    LONGINT;
  330.     END;
  331.  
  332.     BasicCopyRec = RECORD
  333.         fEnvironmentHeader:        EnvironsHeaderRec;
  334.         fCopyPBHeader:            CopyHeaderRec;
  335.     END;
  336.  
  337.     RsrcCopyRec = RECORD
  338.         fEnvironmentHeader:        EnvironsHeaderRec;
  339.         fCopyPBHeader:            CopyHeaderRec;
  340.         fSourceRsrcType:        ResType;
  341.         fSourceRsrcID:            INTEGER;
  342.         fTargetRsrcType:        ResType;
  343.         fTargetRsrcID:            INTEGER;
  344.         fTargetRsrcName:        Str255;
  345.         fTargetRsrcAttrs:        INTEGER;
  346.     END;
  347.  
  348.     FontCopyRec = RECORD
  349.         fEnvironmentHeader:        EnvironsHeaderRec;
  350.         fCopyPBHeader:            CopyHeaderRec;
  351.         fSourceFontRsrcType:    ResType;
  352.         fSourceFontRsrcID:        INTEGER;
  353.         fTargetFontRsrcType:    ResType;                                { FONT, NFNT, or sfnt}
  354.         fTargetFontRsrcID:        INTEGER;
  355.         fTargetFontRsrcName:    Str255;
  356.         fTargetFontRsrcAttrs:    INTEGER;
  357.         fFamilyName:            Str255;
  358.         fFamilyID:                INTEGER;
  359.         fFontSize:                INTEGER;
  360.         fFontStyle:                INTEGER;
  361.     END;
  362.  
  363.     ExtenderPBRec = RECORD
  364.         CASE INTEGER OF
  365.         0: (
  366.             fBasicPBRec:                BasicCopyRec;
  367.            );
  368.         1: (
  369.             fFileCopyPBRec:                BasicCopyRec;
  370.            );
  371.         2: (
  372.             fRsrcCopyPBRec:                RsrcCopyRec;
  373.            );
  374.         3: (
  375.             fFontCopyPBRec:                FontCopyRec;
  376.            );
  377.     END;
  378.  
  379.     ExtenderPBPtr = ^ExtenderPBRec;
  380.  
  381. {///////////////////////////////////////////////////////////////////////////////////////////////////}
  382. {}
  383. {                                        Callback Glue Routines}
  384. {}
  385. {///////////////////////////////////////////////////////////////////////////////////////////////////}
  386. { Memory Related}
  387.  
  388. FUNCTION INewHandle(pCallBackProcPtr: InstallerCallBackUPP; newHandleSize: LONGINT): Handle;
  389. PROCEDURE IDisposHandle(pCallBackProcPtr: InstallerCallBackUPP; storageHandle: Handle);
  390. PROCEDURE IHLock(pCallBackProcPtr: InstallerCallBackUPP; storageHandle: Handle);
  391. PROCEDURE IHUnLock(pCallBackProcPtr: InstallerCallBackUPP; storageHandle: Handle);
  392. { Atom Extender Related}
  393. FUNCTION ReadSourceData(pCallBackProcPtr: InstallerCallBackUPP; VAR count: LONGINT; storagePtr: Ptr): OSErr;
  394. FUNCTION WriteTargetData(pCallBackProcPtr: InstallerCallBackUPP; count: LONGINT; storagePtr: Ptr): OSErr;
  395. FUNCTION ReadTargetData(pCallBackProcPtr: InstallerCallBackUPP; VAR count: LONGINT; storagePtr: Ptr): OSErr;
  396. FUNCTION SetTargetDataPos(pCallBackProcPtr: InstallerCallBackUPP; positionMode: INTEGER; positionOffset: LONGINT): OSErr;
  397. FUNCTION GetTargetDataPos(pCallBackProcPtr: InstallerCallBackUPP; VAR positionOffset: LONGINT): OSErr;
  398. FUNCTION GetTargetDataEOF(pCallBackProcPtr: InstallerCallBackUPP; VAR theLength: LONGINT): OSErr;
  399. FUNCTION SetSourceDataPos(pCallBackProcPtr: InstallerCallBackUPP; positionMode: INTEGER; positionOffset: LONGINT): OSErr;
  400. FUNCTION GetSourceDataPos(pCallBackProcPtr: InstallerCallBackUPP; VAR positionOffset: LONGINT): OSErr;
  401. FUNCTION GetSourceDataEOF(pCallBackProcPtr: InstallerCallBackUPP; VAR theLength: LONGINT): OSErr;
  402. { Action Atom Related}
  403. FUNCTION MakeFSSpecFromFileSpecID(pCallBackProcPtr: InstallerCallBackUPP; pFileSpecID: INTEGER; VAR pFSSpecPtr: FSSpec; VAR pExtraPathInfo: StringHandle): OSErr;
  404. PROCEDURE SuspendWaitCursor(pCallBackProcPtr: InstallerCallBackUPP);
  405. PROCEDURE ResumeWaitCursor(pCallBackProcPtr: InstallerCallBackUPP);
  406. PROCEDURE IncrementStatusBar(pCallBackProcPtr: InstallerCallBackUPP; pIncrementAmount: INTEGER);
  407. FUNCTION IsUserInteractionAllowed(pCallBackProcPtr: InstallerCallBackUPP): BOOLEAN;
  408. FUNCTION InstallerFindSpecialFolder(pCallBackProcPtr: InstallerCallBackUPP; pVRefNum: INTEGER; pfolderType: OSType; pCreateFolder: BOOLEAN; VAR pFoundVRefNum: INTEGER; VAR pFoundDirID: LONGINT): OSErr;
  409. FUNCTION GetBoxFlagOverwrite(pCallBackProcPtr: InstallerCallBackUPP): LONGINT;
  410. FUNCTION IsLaunchedByUpgrader(pCallBackProcPtr: InstallerCallBackUPP): BOOLEAN;
  411. FUNCTION IsParasiteScript(pCallBackProcPtr: InstallerCallBackUPP): BOOLEAN;
  412. PROCEDURE RegisterScriptAction(pCallBackProcPtr: InstallerCallBackUPP; actionClassID: INTEGER; actionIdentifier: INTEGER; param0: UNIV Ptr; param1: UNIV Ptr; param2: UNIV Ptr; param3: UNIV Ptr; resultPtr: UNIV Ptr);
  413. {///////////////////////////////////////////////////////////////////////////////////////////////////}
  414. {}
  415. {                                        Obsolete Interfaces}
  416. {}
  417. {///////////////////////////////////////////////////////////////////////////////////////////////////}
  418. { Old Action Atom Parameter Block}
  419.  
  420. TYPE
  421.     AAPBRec = RECORD
  422.         targetVRefNum:            INTEGER;
  423.         blessedDirID:            LONGINT;
  424.         aaRefCon:                LONGINT;
  425.         doingInstall:            BOOLEAN;
  426.         whichStage:                InstallationStage;
  427.         didLiveUpdate:            BOOLEAN;
  428.         padByte:                SInt8;
  429.         installerTempDirID:        LONGINT;
  430.     END;
  431.  
  432.     AAPBRecPtr = ^AAPBRec;
  433.  
  434. { Action Handler Parameter Block}
  435.     ActionHandlerPB = RECORD
  436.         fStaticDataHdl:            Handle;
  437.         fCallBackProcPtr:        InstallerCallBackUPP;
  438.         fTargetVRefNum:            INTEGER;
  439.         fTargetFolderDirID:        LONGINT;
  440.         fSystemVRefNum:            INTEGER;
  441.         fSystemBlessedDirID:    LONGINT;
  442.         fActionClassID:            INTEGER;
  443.         fActionIdentifier:        INTEGER;
  444.         fParam0:                Ptr;
  445.         fParam1:                Ptr;
  446.         fParam2:                Ptr;
  447.         fParam3:                Ptr;
  448.         fResultPtr:                Ptr;
  449.     END;
  450.  
  451.     ActionHandlerPBPtr = ^ActionHandlerPB;
  452.  
  453.  
  454. {$ALIGN RESET}
  455. {$POP}
  456.  
  457. {$SETC UsingIncludes := InstallerScriptIncludes}
  458.  
  459. {$ENDC} {__INSTALLERSCRIPT__}
  460.  
  461. {$IFC NOT UsingIncludes}
  462.  END.
  463. {$ENDC}
  464.